<?php

namespace App\Models\Shop;

use App\Models\BaseModel;

class DistGoodsSetModel extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'dist_goods_set';

    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        'goods_id',
        'shop_id',
        'goods_name',
        'dist_type',
        'dist_shop_name',
        'dist_shop_id',
        'created_at',
        'created_by',
        'remark',
        'dist_goods'
    );
    // public $timestamps = false;

    public function aliasRable($alias)
    {
        return $this->setTable($alias);
    }

    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array(
        'updated_at'
    );
    protected function serializeDate(\DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }
    //返回关键字段
    public function getTableField()
    {
        return $this->fillable;
    }
    /**
     * 建表语句
     */
    protected function buildTable($name = '')
    {
        $tablename = $this->table;
        if (!empty($name)) {
            $tablename = $name;
        }
        $table  = "CREATE TABLE IF NOT EXISTS  $tablename (
            `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
            `goods_id` int(11) DEFAULT null COMMENT '商品id',
            `goods_name` varchar(100) DEFAULT '' COMMENT '商品名称',
            `dist_type` tinyint(1) DEFAULT '0' COMMENT '类型',
            `dist_shop_id` varchar(255) DEFAULT null COMMENT '店铺id字符串',
            `dist_shop_name` varchar(255) DEFAULT null COMMENT '店铺名称字符串',
            `created_at` datetime DEFAULT NULL COMMENT '创建时间',
            `updated_by` varchar(64) DEFAULT '' COMMENT '更新者',
            `updated_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
            `remark` varchar(500) DEFAULT NULL COMMENT '备注',
            PRIMARY KEY (`id`)
            ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='分销商限制表';";
        return $table;
    }
    public function getType()
    {
        return [
            0 => '仅自己可见',
            1 => '全部分销商可见',
            2 => '选择分销商可见',
            3 => '选择分销商不可见'
        ];
    }
    public function getTypeName($str)
    {
        $arr = $this->getType();
        return !empty($arr[$str]) ? $arr[$str] : '';
    }
    /**
     * 插入新的字段
     */
    protected function bulidField()
    {
        //例子
        $array = [
            'shop_id' => "int(11) DEFAULT '0' COMMENT '客户经理id'",
            'dist_type_name' => "varchar(255) DEFAULT '' COMMENT '类型'",
            'dist_goods' => "tinyint(1) DEFAULT 2 COMMENT '是否一键创建商品'",
        ];
        return $array;
    }
    // 关联 role表
    public function userToRole($role)
    {
        // return $this->hasMany(Role::className(),);
    }
}
